package br.com.sis.rh.entity;

import javax.persistence.Entity;
import javax.persistence.OneToOne;

import org.hibernate.search.annotations.Field;

@Entity
public class DadosPessoais extends Entidade {

	/**
	 * Serial UID.
	 */
	private static final long serialVersionUID = 1L;
	
	@OneToOne
	private Endereco endereco;
	
	@OneToOne
	private EstadoCivil estadoCivil;
	
	@OneToOne
	private Escolaridade escolaridade;

	@Field
	private String nome;
	
	private String nomeMeio;
	
	@Field
	private String sobrenome;
	
	@Field
	private Long cpf;
	
	private String sexo;
	
	@Field
	private String email;
	
	private Integer idade;
	
	private String dddResidencial;
	private String dddCelular;
	private String dddComercial;
	private String telefoneResidencial;
	private String telefoneCelular;
	private String telefoneComercial;
	
	private String nacionalidade;
	
	private String indicativoDeficiencia;
	private String descricaoDeficiencia;
	
	private String indicativoVivenciaExterior;
	private String periodoVivenciaExterior;
	private String atividadeVivenciaExterior;
	
	public String getNome() {
		return nome;
	}
	public void setNome(String nome) {
		this.nome = nome;
	}
	public String getNomeMeio() {
		return nomeMeio;
	}
	public void setNomeMeio(String nomeMeio) {
		this.nomeMeio = nomeMeio;
	}
	public String getSobrenome() {
		return sobrenome;
	}
	public void setSobrenome(String sobrenome) {
		this.sobrenome = sobrenome;
	}
	public Long getCpf() {
		return cpf;
	}
	public void setCpf(Long cpf) {
		this.cpf = cpf;
	}
	public String getSexo() {
		return sexo;
	}
	public void setSexo(String sexo) {
		this.sexo = sexo;
	}
	public String getEmail() {
		return email;
	}
	public void setEmail(String email) {
		this.email = email;
	}
	public Integer getIdade() {
		return idade;
	}
	public void setIdade(Integer idade) {
		this.idade = idade;
	}
	public String getDddResidencial() {
		return dddResidencial;
	}
	public void setDddResidencial(String dddResidencial) {
		this.dddResidencial = dddResidencial;
	}
	public String getDddCelular() {
		return dddCelular;
	}
	public void setDddCelular(String dddCelular) {
		this.dddCelular = dddCelular;
	}
	public String getDddComercial() {
		return dddComercial;
	}
	public void setDddComercial(String dddComercial) {
		this.dddComercial = dddComercial;
	}
	public String getTelefoneResidencial() {
		return telefoneResidencial;
	}
	public void setTelefoneResidencial(String telefoneResidencial) {
		this.telefoneResidencial = telefoneResidencial;
	}
	public String getTelefoneCelular() {
		return telefoneCelular;
	}
	public void setTelefoneCelular(String telefoneCelular) {
		this.telefoneCelular = telefoneCelular;
	}
	public String getTelefoneComercial() {
		return telefoneComercial;
	}
	public void setTelefoneComercial(String telefoneComercial) {
		this.telefoneComercial = telefoneComercial;
	}
	public Endereco getEndereco() {
		return endereco;
	}
	public void setEndereco(Endereco endereco) {
		this.endereco = endereco;
	}
	public EstadoCivil getEstadoCivil() {
		return estadoCivil;
	}
	public void setEstadoCivil(EstadoCivil estadoCivil) {
		this.estadoCivil = estadoCivil;
	}
	public Escolaridade getEscolaridade() {
		return escolaridade;
	}
	public void setEscolaridade(Escolaridade escolaridade) {
		this.escolaridade = escolaridade;
	}
	public String getNacionalidade() {
		return nacionalidade;
	}
	public void setNacionalidade(String nacionalidade) {
		this.nacionalidade = nacionalidade;
	}
	public String getIndicativoDeficiencia() {
		return indicativoDeficiencia;
	}
	public void setIndicativoDeficiencia(String indicativoDeficiencia) {
		this.indicativoDeficiencia = indicativoDeficiencia;
	}
	public String getDescricaoDeficiencia() {
		return descricaoDeficiencia;
	}
	public void setDescricaoDeficiencia(String descricaoDeficiencia) {
		this.descricaoDeficiencia = descricaoDeficiencia;
	}
	public String getIndicativoVivenciaExterior() {
		return indicativoVivenciaExterior;
	}
	public void setIndicativoVivenciaExterior(String indicativoVivenciaExterior) {
		this.indicativoVivenciaExterior = indicativoVivenciaExterior;
	}
	public String getPeriodoVivenciaExterior() {
		return periodoVivenciaExterior;
	}
	public void setPeriodoVivenciaExterior(String periodoVivenciaExterior) {
		this.periodoVivenciaExterior = periodoVivenciaExterior;
	}
	public String getAtividadeVivenciaExterior() {
		return atividadeVivenciaExterior;
	}
	public void setAtividadeVivenciaExterior(String atividadeVivenciaExterior) {
		this.atividadeVivenciaExterior = atividadeVivenciaExterior;
	}
	
	@Override
	public int hashCode() {
		final int prime = 31;
		int result = 1;
		result = prime * result + ((getId() == null) ? 0 : getId().hashCode());
		return result;
	}
	@Override
	public boolean equals(Object obj) {
		if (this == obj)
			return true;
		if (obj == null)
			return false;
		if (!(obj instanceof DadosPessoais))
			return false;
		DadosPessoais other = (DadosPessoais) obj;
		if (getId() == null) {
			if (other.getId() != null)
				return false;
		} else if (!getId().equals(other.getId()))
			return false;
		return true;
	}	
	
}
